<?php
class Empresa extends Abstrato {
	
	protected $tabelaRelacionada, $procedureRelacionada;
	
	function __construct($tabela, $tabelaRelacionada, $procedureRelacionada, $validacoes = array()) {
		parent::__construct($tabela);
		$this->tabelaRelacionada = $tabelaRelacionada;
		$this->procedureRelacionada = $procedureRelacionada;
		$this->mRelacionado = new Abstrato($this->tabelaRelacionada, $validacoes);
	}
	
	function insere($registro, $procedure) {
		$rRelacionado = $registro[$this->tabelaRelacionada];
		unset($registro[$this->tabelaRelacionada]);
		$idPrincipal = $this->mRelacionado->insere($rRelacionado, $this->procedureRelacionada);
		if (is_numeric($idPrincipal)) {
			$registro['id_' . $this->tabelaRelacionada] = $idPrincipal;
			return parent::insere($registro, $procedure);
		}
	}
	
	function edita($registro, $procedure, $valor, $campo) {
		#d($registro); die;
		$rsRelacionado = $registro[$this->tabelaRelacionada];
		$campoRelacionado = 'id_' . $this->tabelaRelacionada;
		unset($registro[$this->tabelaRelacionada]);
		d($rsRelacionado);
		d($this->procedureRelacionada); die;
		$erros = $this->mRelacionado->edita($rsRelacionado, $this->procedureRelacionada, $registro[$campoRelacionado], $campo);
		if (!empty($erros)) {
			return parent::edita($registro, $procedure, $valor, $campo);
		}
		return $erros;
	}
	
}